package com.tq.portal.connector.gitlab.model.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * GitLab 项目信息
 *
 * @author TqCoder
 * @since 2.0.0
 */
@Data
public class GitLabProjectDTO {

    /**
     * 项目ID
     */
    private Integer id;

    /**
     * 项目名称
     */
    private String name;

    /**
     * 项目路径
     */
    private String path;

    /**
     * 项目完整路径
     */
    @JsonProperty("path_with_namespace")
    private String pathWithNamespace;

    /**
     * 项目描述
     */
    private String description;

    /**
     * 项目URL
     */
    @JsonProperty("web_url")
    private String webUrl;

    /**
     * HTTP克隆地址
     */
    @JsonProperty("http_url_to_repo")
    private String httpUrlToRepo;

    /**
     * SSH克隆地址
     */
    @JsonProperty("ssh_url_to_repo")
    private String sshUrlToRepo;

    /**
     * 默认分支
     */
    @JsonProperty("default_branch")
    private String defaultBranch;

    /**
     * 可见性级别
     */
    private String visibility;

    /**
     * 命名空间
     */
    private Namespace namespace;

    /**
     * 创建时间
     */
    @JsonProperty("created_at")
    private LocalDateTime createdAt;

    /**
     * 最后活动时间
     */
    @JsonProperty("last_activity_at")
    private LocalDateTime lastActivityAt;

    @Data
    public static class Namespace {
        private Integer id;
        private String name;
        private String path;
        private String kind;
        @JsonProperty("full_path")
        private String fullPath;
    }
}

